/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.proteu.hibernate.beans;

import br.com.proteu.hibernate.util.FireBirdHelperProteu;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.Transient;

/**
 *
 * @author ricardo
 */
@Entity
@Table(name="MEDICOS")
public class MedicosProteu implements Serializable{

    @Id
    @Column(name="MED_ST_CODIGO")
    private String medStCodigo;
    @Column(name="MED_ST_NOME")
    private String medStNome;
    @Column(name="MED_ST_NOME_USUAL")
    private String medStNomeUsual;
    @Column(name="MED_ST_CRM")
    private String medStCRM;
    @Column(name="CRP_ST_CODIGO")
    private String crpStCodigo;
    @Column(name="MED_ST_RG")
    private String medStRG;
    @Column(name="MED_ST_EMISSOR")
    private String medStEmissor;
    @Column(name="MED_ST_CPF")
    private String medStCPF;
    @Column(name="MED_IN_FONE_DDD")
    private Integer medInFoneDDD;
    @Column(name="MED_ST_FONE")
    private String medStFone;
    @Column(name="MED_IN_CEL_DDD")
    private Integer medInCelDDD;
    @Column(name="MED_ST_CEL")
    private String medStCel;
    @Column(name="MED_ST_END_CEP")
    private String medStEndCEP;
    @Column(name="MED_ST_ENDERECO")
    private String medStEndereco;
    @Column(name="MED_END_NUMERO")
    private String medEndNumero;
    @Column(name="MED_END_COMPLEMENTO")
    private String medEndComplemento;
    @Column(name="MED_ST_END_BAIRRO")
    private String medStEndBairro;
    @Column(name="MED_ST_END_CIDADE")
    private String medStEndCidade;
    @Column(name="MED_ST_END_UF")
    private String medStEndUF;
    @Column(name="MED_ST_EMAIL")
    private String medStEmail;
    @Column(name="MED_ST_AGENCIA")
    private String medStAgencia;
    @Column(name="MED_ST_CONTA")
    private String medStConta;
    @Column(name="MED_ST_NUM_CONTA")
    private String medStNumConta;
    @Lob
    @Column(name="MED_BL_ASSINATURA")
    private String medBlAssinatura;
    @Column(name="ESP_ST_CODIGO")
    private String espStCodigo;
    @Column(name="BAN_ST_CODIGO")
    private String banStCodigo;
    @Column(name="MED_CH_INATIVO")
    private Character medChInativo;
    @Column(name="MED_CH_INTERNO")
    private Character medChInterno;
    @Column(name="MED_ST_QTDEENCAIXE")
    private Integer medStQtdeencaixe;
    @Column(name="MED_FL_VLR_DIF_CONSULTA")
    private Double medFlVlrDifConsulta;
    @Column(name="MED_FL_VLR_DIF_CH")
    private Double medFlVlrDifCh;
    @Column(name="MED_ST_COD_RECURSO")
    private String medStCodRecurso;
    @Column(name="MED_ST_CRM_UF")
    private String medStCrmUF;
    @Column(name="MED_FL_PORC_REPASSE")
    private Double medFlPorcRepasse;
    @Column(name="MED_SYS_DATA")
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date medSysData;
    @Column(name="MED_SYS_USUARIO")
    private String medSysUsuario;


    @Transient
    private int idTree;
    @Transient
    private EspecialidadesClinicaProteu especialidadesClinicaProteuObject;
    @Transient
    private List<EspecialidadesClinicaProteu> listEspecialidadesClinicasProteu;

    

    

    public MedicosProteu() {
    }



    public MedicosProteu(int idTree) {
        this.idTree = idTree;
    }

    
    public MedicosProteu(String medStCodigo) {
        this.medStCodigo = medStCodigo;
    }


    

    public String getBanStCodigo() {
        return banStCodigo;
    }

    public void setBanStCodigo(String banStCodigo) {
        this.banStCodigo = banStCodigo;
    }

    public String getCrpStCodigo() {
        return crpStCodigo;
    }

    public void setCrpStCodigo(String crpStCodigo) {
        this.crpStCodigo = crpStCodigo;
    }

    public String getEspStCodigo() {
        return espStCodigo;
    }

    public void setEspStCodigo(String espStCodigo) {
        this.espStCodigo = espStCodigo;
    }

    public Character getMedChInativo() {
        return medChInativo;
    }

    public void setMedChInativo(Character medChInativo) {
        this.medChInativo = medChInativo;
    }

    public Character getMedChInterno() {
        return medChInterno;
    }

    public void setMedChInterno(Character medChInterno) {
        this.medChInterno = medChInterno;
    }

    public String getMedEndComplemento() {
        return medEndComplemento;
    }

    public void setMedEndComplemento(String medEndComplemento) {
        this.medEndComplemento = medEndComplemento;
    }

    public String getMedEndNumero() {
        return medEndNumero;
    }

    public void setMedEndNumero(String medEndNumero) {
        this.medEndNumero = medEndNumero;
    }

    public Double getMedFlPorcRepasse() {
        return medFlPorcRepasse;
    }

    public void setMedFlPorcRepasse(Double medFlPorcRepasse) {
        this.medFlPorcRepasse = medFlPorcRepasse;
    }

    public Double getMedFlVlrDifCh() {
        return medFlVlrDifCh;
    }

    public void setMedFlVlrDifCh(Double medFlVlrDifCh) {
        this.medFlVlrDifCh = medFlVlrDifCh;
    }

    public Double getMedFlVlrDifConsulta() {
        return medFlVlrDifConsulta;
    }

    public void setMedFlVlrDifConsulta(Double medFlVlrDifConsulta) {
        this.medFlVlrDifConsulta = medFlVlrDifConsulta;
    }

    public Integer getMedInCelDDD() {
        return medInCelDDD;
    }

    public void setMedInCelDDD(Integer medInCelDDD) {
        this.medInCelDDD = medInCelDDD;
    }

    public Integer getMedInFoneDDD() {
        return medInFoneDDD;
    }

    public void setMedInFoneDDD(Integer medInFoneDDD) {
        this.medInFoneDDD = medInFoneDDD;
    }

    public String getMedStAgencia() {
        return medStAgencia;
    }

    public void setMedStAgencia(String medStAgencia) {
        this.medStAgencia = medStAgencia;
    }

    public String getMedBlAssinatura() {
        return medBlAssinatura;
    }

    public void setMedBlAssinatura(String medBlAssinatura) {
        this.medBlAssinatura = medBlAssinatura;
    }

  
   
    public String getMedStCPF() {
        return medStCPF;
    }

    public void setMedStCPF(String medStCPF) {
        this.medStCPF = medStCPF;
    }

    public String getMedStCRM() {
        return medStCRM;
    }

    public void setMedStCRM(String medStCRM) {
        this.medStCRM = medStCRM;
    }

    public String getMedStCel() {
        return medStCel;
    }

    public void setMedStCel(String medStCel) {
        this.medStCel = medStCel;
    }

    public String getMedStCodRecurso() {
        return medStCodRecurso;
    }

    public void setMedStCodRecurso(String medStCodRecurso) {
        this.medStCodRecurso = medStCodRecurso;
    }

    public String getMedStCodigo() {
        return medStCodigo;
    }

    public void setMedStCodigo(String medStCodigo) {
        this.medStCodigo = medStCodigo;
    }

    public String getMedStConta() {
        return medStConta;
    }

    public void setMedStConta(String medStConta) {
        this.medStConta = medStConta;
    }

    public String getMedStCrmUF() {
        return medStCrmUF;
    }

    public void setMedStCrmUF(String medStCrmUF) {
        this.medStCrmUF = medStCrmUF;
    }

    public String getMedStEmail() {
        return medStEmail;
    }

    public void setMedStEmail(String medStEmail) {
        this.medStEmail = medStEmail;
    }

    public String getMedStEmissor() {
        return medStEmissor;
    }

    public void setMedStEmissor(String medStEmissor) {
        this.medStEmissor = medStEmissor;
    }

    public String getMedStEndBairro() {
        return medStEndBairro;
    }

    public void setMedStEndBairro(String medStEndBairro) {
        this.medStEndBairro = medStEndBairro;
    }

    public String getMedStEndCEP() {
        return medStEndCEP;
    }

    public void setMedStEndCEP(String medStEndCEP) {
        this.medStEndCEP = medStEndCEP;
    }

    public String getMedStEndCidade() {
        return medStEndCidade;
    }

    public void setMedStEndCidade(String medStEndCidade) {
        this.medStEndCidade = medStEndCidade;
    }

    public String getMedStEndUF() {
        return medStEndUF;
    }

    public void setMedStEndUF(String medStEndUF) {
        this.medStEndUF = medStEndUF;
    }

    public String getMedStEndereco() {
        return medStEndereco;
    }

    public void setMedStEndereco(String medStEndereco) {
        this.medStEndereco = medStEndereco;
    }

    public String getMedStFone() {
        return medStFone;
    }

    public void setMedStFone(String medStFone) {
        this.medStFone = medStFone;
    }

    public String getMedStNome() {
        return medStNome;
    }

    public void setMedStNome(String medStNome) {
        this.medStNome = medStNome;
    }

    public String getMedStNomeUsual() {
        return medStNomeUsual;
    }

    public void setMedStNomeUsual(String medStNomeUsual) {
        this.medStNomeUsual = medStNomeUsual;
    }

    public String getMedStNumConta() {
        return medStNumConta;
    }

    public void setMedStNumConta(String medStNumConta) {
        this.medStNumConta = medStNumConta;
    }

    public Integer getMedStQtdeencaixe() {
        return medStQtdeencaixe;
    }

    public void setMedStQtdeencaixe(Integer medStQtdeencaixe) {
        this.medStQtdeencaixe = medStQtdeencaixe;
    }

    public String getMedStRG() {
        return medStRG;
    }

    public void setMedStRG(String medStRG) {
        this.medStRG = medStRG;
    }

    public Date getMedSysData() {
        return medSysData;
    }

    public void setMedSysData(Date medSysData) {
        this.medSysData = medSysData;
    }

    public String getMedSysUsuario() {
        return medSysUsuario;
    }

    public void setMedSysUsuario(String medSysUsuario) {
        this.medSysUsuario = medSysUsuario;
    }

    @Transient
    public int getIdTree() {
        return idTree;
    }

    public void setIdTree(int idTree) {
        this.idTree = idTree;
    }



    @Transient
    public List<EspecialidadesClinicaProteu> getListEspecialidadesClinicasProteu() {
        if(listEspecialidadesClinicasProteu == null && this.medStCodigo != null){
            List<MedicoEspecialidadesProteu> listMep = (List<MedicoEspecialidadesProteu>)FireBirdHelperProteu.
                    getListObjectByKeyEqOrderBy(MedicoEspecialidadesProteu.class, "medStCodigo", this.medStCodigo, "medStCodigo", true);
            if(listMep != null && listMep.size()>0){
                listEspecialidadesClinicasProteu = new ArrayList<EspecialidadesClinicaProteu>();
                for(MedicoEspecialidadesProteu me : listMep){
                    EspecialidadesClinicaProteu e = me.getEspecialidadesClinicaProteu();
                    if(e != null){
                            listEspecialidadesClinicasProteu.add(e);
                    }
                }

            }

        }
        return listEspecialidadesClinicasProteu;
    }


    @Transient
    public EspecialidadesClinicaProteu getEspecialidadesClinicaProteuObject() {
        if(especialidadesClinicaProteuObject == null && this.medStCodigo != null){

            //MedicoEspecialidadesProteu mep = (MedicoEspecialidadesProteu)

            this.especialidadesClinicaProteuObject = (EspecialidadesClinicaProteu) FireBirdHelperProteu.getObject(EspecialidadesClinicaProteu.class, this.medStCodigo);
        }
        return especialidadesClinicaProteuObject;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final MedicosProteu other = (MedicosProteu) obj;
        if ((this.medStCodigo == null) ? (other.medStCodigo != null) : !this.medStCodigo.equals(other.medStCodigo)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 3;
        hash = 37 * hash + (this.medStCodigo != null ? this.medStCodigo.hashCode() : 0);
        return hash;
    }

    
}
